﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PraxisRent.Entities;
using PraxisRent.Repository;
using Microsoft.Practices.Unity;

namespace PraxisRent.BL
{
    public class PersonaBL:IPersonaBL
    {
        [Dependency]
        public IPersonaRepository personaDAO { get; set; }

        public List<PERSONA> GetAllFromPersona()
        {
            return personaDAO.GetAllFromPersona();
        }

        public List<PERSONA> GetAllFromPersonaByCriterio(string criterio)
        {
            return personaDAO.GetAllFromPersonaByCriterio(criterio);
        }

        public PERSONA GetAllFromPersonaById(int id)
        {
            return personaDAO.GetAllFromPersonaById(id);
        }

        public PERSONA GetAllFromPersonaByDni(string dni)
        {
            return personaDAO.GetAllFromPersonaByDni(dni);
        }

        public void AddPersona(PERSONA persona)
        {
            var msg = "";
            var ok = persona.Validate(out msg);
            if (ok)
            {
                personaDAO.AddPersona(persona);
            }
            else
            {
                throw new Exception(msg);
            }
        }

        public void UpdatePersona(PERSONA persona)
        {
            var msg = "";
            var ok = persona.Validate(out msg);
            if (ok)
            {
                personaDAO.UpdatePersona(persona);
            }
            else
            {
                throw new Exception(msg);
            }
        }

        public void DeletePersona(int id)
        {
            personaDAO.DeletePersona(id);
        }
    }
}
